如何快速无损修复推送失败的 EPUB 格式电子书文件 – 书伴

您所在的位置:网站首页 pdf kindle打不开 如何快速无损修复推送失败的 EPUB 格式电子书文件 – 书伴

如何快速无损修复推送失败的 EPUB 格式电子书文件 – 书伴

2023-09-06 13:18| 来源: 网络整理| 查看: 265

如何快速无损修复推送失败的 EPUB 格式电子书文件

前不久,亚马逊 Kindle 个人文档服务已原生支持推送 EPUB 格式,但是很多小伙伴在尝试推送后反馈,有个别的 EPUB 格式电子书文件无法成功推送,会收到如下所示的系统退信。

尊敬的客户:

2022年5月3日13:14 发送的以下文档无法发送到您指定的 Kindle: * XXXXXX.epub

Kindle 个人文档服务可以转换并发送以下类型的文档: Microsoft Word(.doc、.docx) 富文本格式 (.rtf) HTML(.htm、.html) 文本 (.txt) 文档 存档的文档(zip、x-zip)和压缩的存档文档 Mobi 图书

类型为 JPEG (.jpg)、GIF (.gif)、位图 (.bmp) 和 PNG 图像 (.png) 的图像。

可以实验性地将 Adobe PDF (.pdf) 转换为 Kindle 格式并发送。

如果失败的文档属于上述某个文档类型,请确保该文档未受密码保护或加密。

对于个人文档附件的有用提示:

附加的每个个人文档的文件大小应小于 50MB(在压缩成 ZIP 文件之前)

提交的电子邮件中包含的个人文档附件不应超过 25 个

您可以在我们的帮助页面上详细了解如何将个人文档传输到 Kindle: http://www.amazon.cn/Kindledocuments/

如果您需要立即的协助,请拨打 4008170100(国内客户) 或 +86-22-59677408(国际客户),与客户支持部门联络。

此致, Amazon Kindle 支持

书伴从几位小伙伴那里收集到一些推送失败的 EPUB 文件,并做了一些测试以找出这些“问题文件”的共通之处,发现这些问题可以通过较为便捷的方式解决,现将解决方法分享如下。

一、问题分析

亚马逊的个人文档服务对推送的 EPUB 文件有较强的容错机制,即便有些内容不符合 EPUB 规范,一般情况下也能被正常处理,但是唯独对 EPUB 2.0 的导航控制文件 toc.ncx[1] 及 EPUB 3.0 的导航文档 nav.xhtml[2] 比较敏感,如果这两个文件存在“错误”,就会大概率导致推送失败。

对于 EPUB 2.0 的 toc.ncx 文件,常见的错误是由于 EPUB 电子书制作不规范,导致出现了重复的 playOrder 的值,当你用 EPUBCheck[3] 验证这样的电子书时,会看到如下所示的错误提示:

Error while parsing file: identical playOrder values for navPoint/navTarget/pageTarget that do not refer to same target

对于 EPUB 3.0 的 nav.xhtml 文件,即便是符合 EPUB 规范,Kindle 个人文档服务也无法正确处理,而违反规范删掉所有导航列表后反倒可以正确处理。这可能是因为 Kindle 个人文档服务负责格式转换的程序未能很好的支持 EPUB 3.0 导致的,今后是否会有所改进有待观察。

尽管可以使用 EPUB 验证工具 EPUBCheck 找出 EPUB 文件所有不符合规范的地方,但是为了提高效率,不建议这样做,毕竟最终目的是让 EPUB 文件能被 Kindle 个人文档服务正常处理。

二、解决方法

解决此问题常见的一个方法是先用 Calibre 将 EPUB 格式转成其它格式再转回 EPUB 格式,但是这可能会对内容或排版产生一定的影响,且在某些情况下不一定有效,如果电子书比较大,转换的过程也较为耗费时间。由于问题的症结只存在于特定文件,也没必要对整本电子书进行转换。

因此,这里推荐使用 EPUB 编辑器 Sigil,通过其提供的一些便捷功能快速修复“问题文件”。

通过下面的链接下载并安装 Sigil 软件(注意选择适用于你所用操作系统的版本):

下载 Sigil:官方发布页面

安装完成后,用 Sigil 打开推送失败的 EPUB 文件。这时可能会出现如下所示对话框:

提示信息的大意是:此 EPUB 中的 HTML 文件格式欠佳,或缺失了 DOCTYPE、html、head、body 元素。Sigl 会自动修复这些文件,尽管在极端情况下,这可能会导致轻微的数据丢失。

除非有特殊需要,建议点击【Yes】按钮让 Sigil 自动修复 EPUB 文件中有问题的 HTML 代码。

接下来修复 EPUB 2.0 的 toc.ncx 文件或 EPUB 3.0 的 nav.xhtml 文件。

用 Sigil 打开 EPUB 文件,依次点击菜单【工具(Tools) → 目录(Table Of Contents) → 生成目录…(Generate Table Of Contents…)】(或使用快捷键【Command + T】。

最后点击左上角的软盘图标按钮(或按快捷键【Command + S】)保存修改后的文件。

至此,如果你的 EPUB 文件符合上面的问题描述,修复后的 EPUB 文件就能正常推送了。

* 注意:Kindle 仅支持两级目录,如果 EPUB 文件有三级目录,Kindle 个人文档服务在转换时会将其忽略,从而造成 Kindle 的【前往】功能无法正确导航。要解决此问题,请使用 Sigil 的目录编辑功能【Tools(工具) → Table Of Contents(目录) → Edit Table Of Contents…(编辑目录…)】,在保持两级目录的基础上自行调整。

更多解决方法可参考《推送 EPUB 格式电子书到 Kindle 的常见问题解决方法》这篇文章。

三、自行修复

由于受限于 EPUB 文件样本数量,以上解决方法可能无法覆盖所有情况,如果你使用此方法修复 EPUB 文件后仍然推送失败,可以尝试自己修复有问题的 EPUB 文件,以下是两种可行的方法。

1、检测 EPUB 是否有违规范

尝试自行修复 EPUB 文件时,你可能需要知道 EPUB 文件都存在哪些问题,书伴推荐 Sigil + EpubCheck 插件这对软件组合,检查存在于 EPUB 文件中违反规范的地方并加以修复。

具体如何使用 Sigil 和 EpubCheck 插件这两个软件组合检查和修复 EPUB 文件,书伴在《如何利用 Sigil 和 EpubCheck 插件检查和修复 EPUB 文件》这篇文章中做了详细介绍,敬请参考。

2、KindleGen 测试格式转换

你也可以尝试用 KindleGen 转换推送失败的 EPUB 文件,目的是模拟亚马逊服务器的格式转换过程,如果在转换的过程中出现带有 Error 错误提示信息(带 Warning 的没关系),就找到了问题所在,按照提示信息用 Sigil 修复相应的地方,一般情况下都可以成功推送。

[1] 参见 EPUB 2.0.1 规范中关于“声明式全局导航”的定义“2.4.1: Declarative Global Navigation — the NCX” via [2] 参见 EPUB 3.3 规范中关于“导航文档”的定义“7. EPUB navigation document” via [3] EPUBCheck 是一款用于验证 EPUB 出版物是否符合 EPUB 规范的工具 via

© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/973.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3